package com.itheima.controller;


import com.itheima.common.PageResult5;
import com.itheima.common.Result3;
import com.itheima.entity.Companys;
import com.itheima.service.CompanysService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

@RestController
@RequestMapping("/companys")
public class CompanysController {

    @Autowired
    private CompanysService companysService;

    @Autowired
    private HttpServletRequest request;

    //  企业管理列表  查询
    @GetMapping()
    public PageResult5 findPage(Integer page, Integer pagesize, String tags, String province, String city, String shortName, Integer state) {
        PageResult5 pageResult = companysService.findPage(page, pagesize, tags, province, city, shortName, state);
        return pageResult;
    }

    // 企业管理删除
    @DeleteMapping("/{id}")
    public Result3 deleteById(@PathVariable Integer id) {
        companysService.removeById(id);
        return new Result3(true);
    }

    //  企业管理添加
    @PostMapping
    public Result3 add(@RequestBody Companys companys) {
        HttpSession session = request.getSession();
        String username = (String) session.getAttribute("username");
        companysService.add(companys, username);
        return new Result3(companys.getCreatorID());
    }

    //  企业管理设置状态
    @PostMapping("/{id}/{state}")
    public Result3 updateState(@PathVariable Integer id, @PathVariable Integer state) {
        Result3 result3 = companysService.updateState(id, state);
        return result3;
    }

    //  企业管理修改  1. 修改回显
    @GetMapping("/{id}")
    public Companys findById(@PathVariable Integer id) {
        Companys companys = companysService.getById(id);
        return companys;
    }

    //  企业管理修改   2. 修改保存
    @PutMapping("/{id}")
    public Result3 updateById(@PathVariable Integer id, @RequestBody Companys companys) {
        companysService.updateById(companys);
        return new Result3(true);
    }

}
